import { isVip } from '../config/config.js'
import regeneratorRuntime from 'wx-promise-pro'
import 'wx-promise-pro'
/* params: 参数：
  contentType： 默认x-www-form-urlencoded， 可传json
  post：默认post 可传get
*/ 
/**
 * 
 * @param {Object} params   
 *    @param {String} conetentType：默认x-www-form-urlencoded， 可传json；
 *    @param {String} method：默认post 可传get
 * @param {String} url      接口地址
 */
const request = async (params = {}, url) => {
  // Object.assign(params, {
  //   token: wx.getStorageSync('token')
  // })
  let contentType = params.contentType === "json";
  // 所有的请求，header默认携带token
  // let header = params.header || {
  //   'Content-Type': contentType ? 'application/json;charset=utf-8' : 'application/x-www-form-urlencoded;charset=utf-8',
  //   'token': params.token || ''
  // }

  let data = params.query || {};
  let method = params.method || 'post'
  // showLoading 可以控制是否显示加载状态
  if (params.showLoading) {
    wx.showLoading({
      title: '加载中...',
    })
  }

  // 检测网络
  function getWork(e) {
    wx.getNetworkType({
      success: function (res) {
        console.log('获取网络信息成功', e)
        if (res.networkType === 'none') {
          wx.showToast({
            title: '哎呀，网络开小差了，请检查您的网络是否正常',
            icon: 'none',
            duration: 3000
          })
          return null
        } else {
          wx.showToast({
            title: '系统繁忙，请稍后再试',
            icon: 'none',
            duration: 3000
          })
        }
      },
      fail() {
        console.error('获取网络信息失败', e)
      }
    })
  }
  try {
    let res = await wx.pro.request({ url, method, data })
    if (res.statusCode === 200) {
      if (!res.data) {
        wx.showToast({
          title: '系统繁忙 ' + res.msg,
          icon: 'none',
          duration: 3000
        })
      }
      return res.data
    } else {
      wx.showToast({
        title: '系统错误 ' + res.msg,
        icon: 'none',
        duration: 3000
      })
      console.error(res)
    }
  } catch (e) {
    getWork(e)
  }
}

export {
  request
}